//package com.hjh.netty.elect.demo2;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.data.redis.connection.Message;
//import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
//import org.springframework.data.redis.listener.RedisMessageListenerContainer;
//
//import javax.annotation.Resource;
//import java.nio.charset.StandardCharsets;
//
///**
// * redis key过期时间监听
// */
//@Slf4j
//public class KeyExpiredListener extends KeyExpirationEventMessageListener {
//
//    @Resource
//    private RedisUtil redisUtil;
//
//    public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) {
//        super(listenerContainer);
//    }
//
//    @Override
//    public void onMessage(Message message, byte[] pattern) {
//        String channel = new String(message.getChannel(), StandardCharsets.UTF_8);
//        //过期的key
//        String key = new String(message.getBody(), StandardCharsets.UTF_8);
//        log.info("redis key 过期：pattern={},channel={},key={}", new String(pattern), channel, key);
//        if (key.startsWith(KeyConfig.SERIAL_KEY_EXPIRE)) {
//        	//TODO netty通道过期，处理对应的设备离线逻辑
//			String serial = key.replace(KeyConfig.SERIAL_KEY_EXPIRE, "");
//			// 获取uid
//            String uid = (String) redisUtil.get(KeyConfig.SERIAL_KEY_VALUE + serial);
//            // 删除uid相关数据及对应的通道
//            redisUtil.delete(KeyConfig.UID_KEY_VALUE + uid);
//            redisUtil.delete(KeyConfig.SERIAL_KEY_VALUE + serial);
//            ChannelMap.removeTimeServerChannel(uid);
//		}
//    }
//}
